package fr.gestionimmo.mangedbean;

import java.io.Serializable;
import java.util.List;

import javax.faces.model.DataModel;
import javax.faces.model.ListDataModel;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import fr.gestionimmo.exception.DaoLocatorException;
import fr.gestionimmo.exception.ManagedBeanException;
import fr.gestionimmo.locator.ServiceLocator;

import fr.gestionimmoejb.model.Utilisateur;

public class UserForm implements Serializable{

	private static final long serialVersionUID = 4362016114509874573L;
	protected final Log log = LogFactory.getLog(getClass());
	
	private DataModel listeUser;
	private Utilisateur user= new Utilisateur();
	
	
	
	public DataModel getListeUser() throws ManagedBeanException{
		
		log.debug("getListeJoueur()");
		try{
			listeUser = new ListDataModel();			
			listeUser.setWrappedData(ServiceLocator.getInstance().
									getAdministrationManager().listUtilisateur());
			
		} catch(DaoLocatorException doex){
			log.error("getListeUser() : "+ doex.getLocalizedMessage());
			throw new ManagedBeanException(doex);
		}
		return listeUser;
	}
	
	public void creer() throws ManagedBeanException {
		log.debug("creer()");
		try{
			ServiceLocator.getInstance()
					  .getAdministrationManager()
					  .creerUtilisateur(user);
					  			
		} catch(Exception ex){
			log.error("creer() : "+ ex.getLocalizedMessage());
			throw new ManagedBeanException(ex);
		}
	}
	
	public void supprimer() throws ManagedBeanException {
		log.debug("supprimer()");
		try{
			user = (Utilisateur) listeUser.getRowData();
			ServiceLocator.getInstance()
					  .getAdministrationManager()
					  .supprimerUtilisateur(user);
			
		} catch(Exception ex){
			log.error("supprimer() : "+ ex.getLocalizedMessage());
			throw new ManagedBeanException(ex);
		}
	}
	
	public String detail(){
		return null;
	}
	
	public void setlisteUser(DataModel listeUser) {
		this.listeUser = listeUser;
	}
	public Utilisateur getUser() {
		return user;
	}
	public void setUser(Utilisateur user) {
		this.user = user;
	}
	public static long getSerialVersionUID() {
		return serialVersionUID;
	}
	public Log getLog() {
		return log;
	}

}
